package com.example.victory.swagger.model;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;

/**
 * ApiResponseQueryConditionData
 */
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2021-04-26T10:50:39.083+08:00")

public class ApiResponseQueryConditionData   {
  @JsonProperty("rankingType")
  @Valid
  private List<KeyValueDetail> rankingType = null;

  @JsonProperty("queryScope")
  @Valid
  private List<KeyValueDetail> queryScope = null;

  @JsonProperty("queryDate")
  @Valid
  private List<KeyValueDetail> queryDate = null;

  public ApiResponseQueryConditionData rankingType(List<KeyValueDetail> rankingType) {
    this.rankingType = rankingType;
    return this;
  }

  public ApiResponseQueryConditionData addRankingTypeItem(KeyValueDetail rankingTypeItem) {
    if (this.rankingType == null) {
      this.rankingType = new ArrayList<KeyValueDetail>();
    }
    this.rankingType.add(rankingTypeItem);
    return this;
  }

  /**
   * 排名查询条件类型
   * @return rankingType
  **/
  @ApiModelProperty(value = "排名查询条件类型")

  @Valid

  public List<KeyValueDetail> getRankingType() {
    return rankingType;
  }

  public void setRankingType(List<KeyValueDetail> rankingType) {
    this.rankingType = rankingType;
  }

  public ApiResponseQueryConditionData queryScope(List<KeyValueDetail> queryScope) {
    this.queryScope = queryScope;
    return this;
  }

  public ApiResponseQueryConditionData addQueryScopeItem(KeyValueDetail queryScopeItem) {
    if (this.queryScope == null) {
      this.queryScope = new ArrayList<KeyValueDetail>();
    }
    this.queryScope.add(queryScopeItem);
    return this;
  }

  /**
   * 查询范围
   * @return queryScope
  **/
  @ApiModelProperty(value = "查询范围")

  @Valid

  public List<KeyValueDetail> getQueryScope() {
    return queryScope;
  }

  public void setQueryScope(List<KeyValueDetail> queryScope) {
    this.queryScope = queryScope;
  }

  public ApiResponseQueryConditionData queryDate(List<KeyValueDetail> queryDate) {
    this.queryDate = queryDate;
    return this;
  }

  public ApiResponseQueryConditionData addQueryDateItem(KeyValueDetail queryDateItem) {
    if (this.queryDate == null) {
      this.queryDate = new ArrayList<KeyValueDetail>();
    }
    this.queryDate.add(queryDateItem);
    return this;
  }

  /**
   * 查询日期
   * @return queryDate
  **/
  @ApiModelProperty(value = "查询日期")

  @Valid

  public List<KeyValueDetail> getQueryDate() {
    return queryDate;
  }

  public void setQueryDate(List<KeyValueDetail> queryDate) {
    this.queryDate = queryDate;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiResponseQueryConditionData apiResponseQueryConditionData = (ApiResponseQueryConditionData) o;
    return Objects.equals(this.rankingType, apiResponseQueryConditionData.rankingType) &&
        Objects.equals(this.queryScope, apiResponseQueryConditionData.queryScope) &&
        Objects.equals(this.queryDate, apiResponseQueryConditionData.queryDate);
  }

  @Override
  public int hashCode() {
    return Objects.hash(rankingType, queryScope, queryDate);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiResponseQueryConditionData {\n");
    
    sb.append("    rankingType: ").append(toIndentedString(rankingType)).append("\n");
    sb.append("    queryScope: ").append(toIndentedString(queryScope)).append("\n");
    sb.append("    queryDate: ").append(toIndentedString(queryDate)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

